﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using vudu.Logica.Clases;
using vudu.EnlaceDatos.SqlServer;
using System.Web.UI.WebControls;
using vudu.Logica.Excepciones;

namespace vudu.PaginasWeb.G8Escuela
{
    public partial class ConsultarEscuela : System.Web.UI.Page
    {
        private Universidad universidad = new Universidad();
        
        protected void Page_Load(object sender, EventArgs e)
        {
            LlenarCabecerasTablaInformacionEscuela();
            CargarInformacionTablaEscuelas();


           // Al integrar, por favor descomentar lo siguiente
            string miRol = (string)Session["rol"];
            if (miRol != "Universidad")
                Response.Redirect("../G3AccesoSistema/InicioSistema.aspx");

        }

        public void LlenarCabecerasTablaInformacionEscuela()
        {
            // Creamos un nuevo registro para la tabla
            TableRow registroTabla = new TableRow();
            ConsultarEscuelas.Rows.Add(registroTabla);
            // Creamos una celda para esta tabla.
            TableCell celdaTabla = new TableCell();
            celdaTabla.Width = 200;
            celdaTabla.HorizontalAlign = HorizontalAlign.Center;
            registroTabla.Cells.Add(celdaTabla);
            // Creamos un WebControl de tipo "LABEL" y se lo aderimos a la celda.
            System.Web.UI.WebControls.Label labelCabecera = new Label();
            labelCabecera.Text = "Escuela";
            celdaTabla.Controls.Add(labelCabecera);

            //Repetimos el procedimiento hasta llenar nuestra tabla.
            celdaTabla = new TableCell();
            celdaTabla.Width = 100;
            celdaTabla.HorizontalAlign = HorizontalAlign.Center;
            registroTabla.Cells.Add(celdaTabla);
            labelCabecera = new Label();
            labelCabecera.Text = "Director";
            celdaTabla.Controls.Add(labelCabecera);

            celdaTabla = new TableCell();
            celdaTabla.Width = 200;
            celdaTabla.HorizontalAlign = HorizontalAlign.Center;
            registroTabla.Cells.Add(celdaTabla);
            labelCabecera = new Label();
            labelCabecera.Text = "Opcion";
            celdaTabla.Controls.Add(labelCabecera);

        }
         public void CargarInformacionTablaEscuelas()
         {
             Escuela escuela=new Escuela();
             string _nombre;
             //Cuando se integre borrar  por  favor:
             //_nombre= "Universidad Catolica Andres Bello";            
             //Cuando se integre descomentar por favor

             Universidad _universidad = (Universidad)Session["usuario"];

             _nombre = _universidad.Nombre;
             Usuario.Text =  _nombre;


            //Preguntamos si hay escuelas activas
             if (escuela.ConsultarListaEscuela(_nombre).Count != 0)
             {
                 try
                 {
                     foreach (Escuela escuelita in escuela.ConsultarListaEscuela(_nombre))
                     {
                         // Creamos un nuevo registro para la tabla
                         TableRow registroTabla = new TableRow();
                         ConsultarEscuelas.Rows.Add(registroTabla);

                         // Creamos una celda para esta tabla.
                         TableCell celdaTabla = new TableCell();
                         registroTabla.Cells.Add(celdaTabla);
                         // Creamos un WebControl de tipo "LABEL" y se lo aderimos a la celda.
                         System.Web.UI.WebControls.Label labelRegistro = new Label();
                         labelRegistro.Text = escuelita.NombreEscuela;
                         celdaTabla.Controls.Add(labelRegistro);

                         celdaTabla = new TableCell();
                         celdaTabla.HorizontalAlign = HorizontalAlign.Center;
                         registroTabla.Cells.Add(celdaTabla);
                         // Creamos un WebControl de tipo "LABEL" y se lo aderimos a la celda.
                         labelRegistro = new Label();
                         labelRegistro.Text = escuelita.DirectorEscuela;
                         celdaTabla.Controls.Add(labelRegistro);

                         celdaTabla = new TableCell();
                         celdaTabla.HorizontalAlign = HorizontalAlign.Center;
                         registroTabla.Cells.Add(celdaTabla);
                         // Creamos un WebControl de tipo "BUTTON" y se lo aderimos a la celda.
                         System.Web.UI.WebControls.HyperLink buttonVerEscuela = new HyperLink();
                         buttonVerEscuela.Text = "Ver Escuela";
                         buttonVerEscuela.CssClass = "miga";
                         buttonVerEscuela.NavigateUrl = "VerUnaEscuela.aspx?cod=" + escuelita.IdEscuela;

                         celdaTabla.Controls.Add(buttonVerEscuela);

                         // creamos un registro vacio para que la lista de las escuelas no esten muy pegadas entre si
                         TableRow registroTabla2 = new TableRow();
                         ConsultarEscuelas.Rows.Add(registroTabla2);

                         TableCell celdaTabla22 = new TableCell();
                         registroTabla2.Cells.Add(celdaTabla22);

                     }
                 }
                 catch (ConexionExeption)
                 {
                     MensajeError.Text = "Operacion Fallida : No se pudo establecer conexion con la Base de Datos";
                     MensajeError.CssClass = "transaccionFallida";
                     MensajeError.Visible = true;
                 }
                 catch (TransaccionFallidaExeption)
                 {
                     MensajeError.Text = "Operacion Fallida : No se pudo realizar la transaccion";
                     MensajeError.CssClass = "transaccionFallida";
                     MensajeError.Visible = true;
                 }

                 catch (Exception)
                 {
                     MensajeError.Text = "Operacion Fallida : ocurrio un error inesperado";
                     MensajeError.CssClass = "transaccionFallida";
                     MensajeError.Visible = true;
                 }
             }
                 //Sino hay escuelas activas mostramos mensaje de error
             else
             {
                 MensajeError.Text = "Actualmente no hay escuelas activas en la " + _nombre;
                 MensajeError.CssClass = "transaccionFallida";
                 MensajeError.Visible = true;
             }
         }
    }
    
}